// author:zandaoguang
// 每一次进行路由的时候，需要进行判断权限，然后进行跳转
import router from './router'
import store from './store'
import NProgress from 'nprogress' // Progress 进度条
import 'nprogress/nprogress.css' // Progress 进度条样式
import {getToken} from '@/utils/auth' // 验权
const whiteList = ['/login', '/404','/screen','/screen/technology','/screen/organization','/screen/expert'] //白名单,不需要登录的路由
router.beforeEach((to, from, next) => {
  NProgress.start()
  // 判断是否有token
  if (getToken()) {
    //如果已经登录

    if (to.path === '/login') {
      next({path: '/'})
      NProgress.done() // 结束Progress
    } 
    else if (!store.getters.role) { // 判断当前用户是否已经拉取完user_info信息
      store.dispatch('GetInfo').then(() => { // 拉取info
        next({...to}) // 跳转到目的地
      })
    } else {
      next() // 当有用户权限的时候，说明所有可访问路由已生成 如访问没权限的全面会自动进入404页面
    }
  } else if (whiteList.indexOf(to.path) !== -1) {
    //如果前往的路径是白名单内的,就可以直接前往
    next()
  } else {
    //如果路径不是白名单内的,而且又没有登录,就跳转登录页面
    next('/login')
    NProgress.done() // 结束Progress
  }
})
router.afterEach(() => {
  NProgress.done() // 结束Progress
})
